<?php
	function verificarUsuario($usuarioIngresado=null, $pos1=null, $pos2=null, $usuarioParcial=null){
		if($pos1==strlen($usuarioIngresado)){
			return("");
		}else{
			if()
			
			
			
			
		
		}
	
	}
	
	
	
	
	//Ultima verificacion: 
	class InicioSeguro extends CI_Controller {
		//Metodo constructor de la clase
		function __construct(){
			parent::__construct();
			
			//Cargamos el helper de las cookies para poder recordar el usuario si lo desea.
			$this->load->helper('cookie');
		}
		
		//Este es el metodo que se llama por defecto cuando queremos entrar al login o al sistema de una manera segura
		//Si el usuario ya inicio sesion muestro el admin
		//Si el usuario no inicio sesion cargo la vista de login seguro para que los usuarios puedan iniciar sesion
		//Este metodo no se puede llamar con AJAX
		function index(){
			//Busco a la institucion para comprobar que este activa
			$institucion = $this->m_institucion->get(1);
			
			//Si la institucion está activa mostramos el login o sistema. Caso contrario, una pantalla de error.
			if($institucion->row()->estado == 1){
				//Si entra en el IF quiere decir que el usuario tiene iniciada sesion actualmente.
				if($this->session->userdata('sesionIniciada') == 'Si'){
					//Cargo la vista donde se visualiza el TIMELINE y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_timeline', "", true);
					
					//Cargo la vista principal del sistema
					$this->load->view('v_sistema', $datosPrincipal);
				}else{
					//Guardo en la auditoria que alguien ingreso al login seguro del sistema - Que, quien, donde y como
					$this->m_auditoria->crear(10, 0, $_SERVER['REMOTE_ADDR'],'VisitanteLoginSeguro');
					
					//Cargamos la vista del login sin ningun mensaje de error activado
					$datos['error'] = false;
					$this->load->view('loginSeguro', $datos);
				}
			}else{
				//Mostramos la pagina de error.
				show_404();			
			}
		}
		
		//Ultima comprobacion: 28-10-2014
		//Este es el metodo que se llama cuando una persona quiere iniciar sesion en el sistema de una manera segura
		function iniciarSesion(){
			//Valido los datos enviados desde el login del sistema
			//Los dos campos no deben estar vacios y el password debe ser de almenos seis caracteres
			if($this->input->post('nombreUsuario',true) && $this->input->post('passwordUsuario',true) && strlen($this->input->post('passwordUsuario',true))>=6){
				//Cargo el modelo donde estan los datos de los usuarios registrados para hacer la validacion
				$this->load->model('m_usuario');
				
				//Validar el usuario contra la base de datos. Tanto el usuario como la persona deben estar activos.
				$usuario = $this->m_usuario->validarUsuario($this->input->post('nombreUsuario', true), $this->input->post('passwordUsuario', true));
				
				//Si existe un usuario con los datos que pasamos entonces registro sus datos
				//en la sesión, si no existe, cargo la vista del login con un mensaje de error.
				if($usuario->num_rows() == 1){
					$this->session->set_userdata('sesionIniciada', 'Si');
					$this->session->set_userdata('idUsuarioLog', $usuario->row()->idUsuario);
					$this->session->set_userdata('idPersonaLog', $usuario->row()->idPersona);
					$this->session->set_userdata('nombreUsuarioLog', $usuario->row()->nombre);
					$this->session->set_userdata('fechaUltimoAccesoUsuarioLog', $usuario->row()->fechaUltimoAcceso);
					$this->session->set_userdata('fechaUltimoCierreUsuarioLog', $usuario->row()->fechaUltimoCierre);
					//$this->session->set_userdata('estadoChat', $usuario->row()->estadoChat);
					
					//Permisos del usuario
					$this->session->set_userdata('permisoAlumno', $usuario->row()->alumno);
					$this->session->set_userdata('permisoTutor', $usuario->row()->tutor);
					$this->session->set_userdata('permisoDocente', $usuario->row()->docente);
					$this->session->set_userdata('permisoDirector', $usuario->row()->director);
					$this->session->set_userdata('permisoVicedirector', $usuario->row()->vicedirector);
					$this->session->set_userdata('permisoPreceptor', $usuario->row()->preceptor);
					$this->session->set_userdata('permisoSecretario', $usuario->row()->secretario);
					$this->session->set_userdata('permisoAdministrador', $usuario->row()->administrador);
					
					//Cargo el modelo donde estan los datos de las personas----------------------------------------------------------------------------------
					$this->load->model('m_persona');
					
					//Busco los datos de la persona que inicio sesion
					$persona = $this->m_persona->get($usuario->row()->idPersona);
					
					//Guardo los datos de la persona en variables de sesion
					$this->session->set_userdata('apellidoPersonaLog', $persona->row()->apellido);
					$this->session->set_userdata('nombrePersonaLog', $persona->row()->nombre);
					//Esto se desactivo porque una persona al cambiarse su propia foto, generaba un error.
					//$this->session->set_userdata('hashFotoPersonaLog', $persona->row()->hashArchivoFoto);
					
					//Si la persona es TUTOR busco el id del mismo-------------------------------------------------------------------------------------------
					if($usuario->row()->tutor == 1){
						//Cargo el modelo donde estan los datos de los tutores
						$this->load->model('m_tutor');
						
						//Busco los datos del tutor que inicio sesion. Debe ser un tutor activo.
						$tutor = $this->m_tutor->getActivo($usuario->row()->idPersona);
						
						//Si la consulta devolvio un registro lo guardo en la sesion
						if($tutor->num_rows() == 1){
							$this->session->set_userdata('idTutorLog', $tutor->row()->idTutor);					
						}
					}
					
					//Si la persona es ALUMNO busco el id del mismo-------------------------------------------------------------------------------------------
					if($usuario->row()->alumno == 1){
						//Cargo el modelo donde estan los datos de los alumnos
						$this->load->model('m_alumno');
						
						//Busco los datos del alumno que inicio sesion. Debe ser un alumno activo.
						$alumno = $this->m_alumno->getActivo($usuario->row()->idPersona);
						
						//Si la consulta devolvio un registro lo guardo en la sesion
						if($alumno->num_rows() == 1){
							$this->session->set_userdata('idAlumnoLog', $alumno->row()->idAlumno);
						}
					}
					
					//Si la persona es DOCENTE busco el id del mismo-------------------------------------------------------------------------------------------
					if($usuario->row()->docente == 1){
						//Cargo el modelo donde estan los datos de los docentes
						$this->load->model('m_docente');
						
						//Busco los datos del docente que inicio sesion. Debe ser un docente activo.
						$docente = $this->m_docente->getActivo($usuario->row()->idPersona);
						
						//Si la consulta devolvio un registro lo guardo en la sesion
						if($docente->num_rows() == 1){
							$this->session->set_userdata('idDocenteLog', $docente->row()->idDocente);
						}
					}
					
					//Si la persona es DIRECTIVO busco el id del mismo-------------------------------------------------------------------------------------------
					if($usuario->row()->director == 1){
						//Cargo el modelo donde estan los datos de los directivos
						$this->load->model('m_directivo');
						
						//Busco los datos del directivo que inicio sesion
						$directivo = $this->m_directivo->getActivo($usuario->row()->idPersona);
						
						//Si la consulta devolvio un registro lo guardo en la sesion
						if($directivo->num_rows() == 1){
							$this->session->set_userdata('idDirectivoLog', $directivo->row()->idDirectivo);
						}
					}
													
					//Actualizo la fecha de ultimo acceso del usuario logeado
					$this->m_usuario->actualizarFechaUltimoAcceso($usuario->row()->idUsuario);
					
					//Si el usuario apreto recordar usuario genero las cookies en el navegador.
					if($this->input->post('recordarUsuario') == "on"){
						set_cookie('nombreUsuario', $this->input->post('nombreUsuario', true),604800);			
						set_cookie('passwordUsuario',$this->input->post('passwordUsuario', true),604800);	
					}
					
					//Guardo en la auditoria que alguien ingreso al sistema correctamente - Que, quien, donde y como
					$this->m_auditoria->crear(6, $usuario->row()->idUsuario, $_SERVER['REMOTE_ADDR'],'InicioSesionCorrecto');
					
					//El usuario es correcto lo redirigimos al PANEL DE CONTROL
					redirect(site_url("inicio"));
				}else{
					//Guardo en la auditoria que alguien ingreso al sistema incorrectamente - Que, quien, donde y como
					$this->m_auditoria->crear(7, 0, $_SERVER['REMOTE_ADDR'],'InicioSesionIncorrecto - Usuario: ' . $this->input->post('nombreUsuario',true) . ", Password: ". $this->input->post('passwordUsuario',true));
					
					//Cargo la vista con un mensaje de error para mostrar
					$datos["error"]=true;
					$datos["mensajeError"] = "Su usuario y/o contrase&ntilde;a son incorrectos.";
					$this->load->view('login', $datos);
				}
			}else{
				//Si no llegan variables de POST
				//Destruimos la sesion por las dudas
				$this->session->sess_destroy();
				//Y mostramos un mensaje de que esta tratando de entrar a una pagina inexistente
				show_404();
			}
		}
	}
	
	/* End of file inicioSeguro.php */
	/* Location: ./application/controllers/inicio.php */
?>